﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using TvTipper.Entities;

namespace TvTipper.Api
{
    /// <summary>
    /// Defines the data access layer interface.
    /// </summary>
    public interface IDataAccessPortal
    {
        IList<PersonMetadata> SearchPersonsByName(string name);

        Person GetPersonById(string id);

        IList<TvProgramMetadata> SearchTvProgram(TvProgramSearchQuery query);

        TvProgram GetTvProgramById(string id);

        IList<TvProgramMetadata> GetTopTvPrograms(int from, int to);

        IList<LookupEntity> getLookupByKey(LookupType type);

        void RankEntity(RankableEntity entity, int rank);

        IDictionary<string, float> GetRankFactors();

        void SetRankFactors(IDictionary<string, float> factors);

        void UpdatePerson(Person person);

        void UpdateProgram(TvProgram program);
    }
}
